using System;
using System.Collections;
using CUtil;
using System.Collections.Generic;
namespace CStock
{
    public interface IDataItem : IStockObjectBase, ICloneable //IXMLSerializable
	{
        List<IFundamentalData> FundamentalData { get; set; }
        List<IFundamentalData> FundamentalData_Quartals { get; set; }
        //string CountryCode { get; set; }
        IFinancialData FinancialData { get;set;}	
		[System.Xml.Serialization.XmlIgnoreAttribute()]
		IDataClass DataClass{get;set;}
        new IPortfolio Parent { get;set;}
        NameObjectCollection TradeOrders { get;set;}
        IOrders Orders { get;set;}
        IList<string> IndicatorsOnChart { get;set;}
        //IList<string> ChartOthers { get; set; }

        Web.WebStockType WebStockType { get; set; }
        ITradeStep TradeStep{ get;set;}

        double Value_Initial { get;}
        int ChartNumberToShow { get;set;}
        int ChartSizeHeight { get;set;}
        int ChartSizeWidth { get;set;}

        bool ChartCandleStick{ get;set;}
        

		IQuoteWeb QuoteWeb {get;set;}

		double BuyQuote{get;set;}
        double PriceFirst { get;set;}

		int Number{get;set;}
		double Performance{get;}

		double PerformancePerYear{get;}
        double Value_Current { get;}
		DateTime BuyDate{get;set;}
		

		bool ShowIntradayIndicators{get;set;}
        bool Show100PercentGraph { get; set; }
		bool HideIndicatorsOnChart{get;set;}


		string Symbol{get;set;}
		string Exchange{get;set;}
		string MarketType{get;set;}

		//set only when it is a future
		string Expiry{get;set;}
		string ExternalID {get;set;}

        bool AdjustBuyQuote(int numberOfItems, double price, DateTime dateBought);

        bool Serialize_WithoutDataClass();
        string ProfileName { get; set; }
        IProfile Profile{ get; }
        IIndicator GetOtherShareAsIndicator(string shareID);
        
        string Symbol_Intraday{ get; set; }
	}
}
